package db

import (
    "fmt"
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
    "gorm.io/gorm/logger"
)

var DB *gorm.DB

func InitDB() error {
    dsn := "root:123456@tcp(127.0.0.1:3306)/test2?charset=utf8mb4&parseTime=True&loc=Local"
    var err error
    DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
        Logger: logger.Default.LogMode(logger.Info),
    })
    if err != nil {
        return fmt.Errorf("failed to connect database: %v", err)
    }

    // 自动迁移
    err = DB.AutoMigrate(&User{}, &UserToken{}, &UserFile{}, &File{})
    if err != nil {
        return fmt.Errorf("failed to auto migrate: %v", err)
    }

    sqlDB, err := DB.DB()
    if err != nil {
        return err
    }
    
    // 设置连接池
    sqlDB.SetMaxIdleConns(10)
    sqlDB.SetMaxOpenConns(100)

    return nil
}

// GetDB 获取数据库实例
func GetDB() *gorm.DB {
    return DB
} 